local frame = CreateFrame("Frame")

LibStub("AceHook-3.0"):Embed(frame)

local strmatch = strmatch

-- GUILD_MOTD_TEMPLATE = "Guild Message of the Day: %s"; -- %s is the guild MOTD

local pattern = GUILD_MOTD_TEMPLATE:
	gsub("[-%%+*.()%[%]]", "%%%1"):
	gsub("%%%%s", "(.+)")

local gmotdData

function frame:AddMessage(frame, text, ...)
	local gmotd 
	if text then
		gmotd = strmatch(text, pattern)
	end
	if gmotd then
		gmotdData={text,...}
		self:UnhookAll()
	else
		return self.hooks[frame].AddMessage(frame, text, ...)
	end
end

frame:RawHook(ChatFrame1, "AddMessage", true)


local delay=2.5
frame:SetScript("OnUpdate", function(self, expired)
	delay=delay-expired
	if delay<0 then
		self:Hide()
		self:UnhookAll()
		if gmotdData then
			ChatFrame1:AddMessage(unpack(gmotdData))
			gmotdData=nil
		end
	end
end)
